from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

# 设置webdriver路径，如果是环境变量中有，则无需设置具体路径
webdriver_path = "d:\\GPT浏览器下载\\谷歌浏览器驱动器\\chromedriver.exe"

# 创建一个新的Chrome浏览器实例
options = webdriver.ChromeOptions()
# 模拟User-Agent
options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36')

driver = webdriver.Chrome(service=Service(webdriver_path), options=options)

try:
    # 访问目标网址
    driver.get('https://www.liqiantw.icu/login')
    
    # 等待页面加载完成：第一种方式，判断指定元素存在
    # 等待具有特定类名的按钮加载完成
    wait = WebDriverWait(driver, 100)  # 最多等待100秒
    # 使用CSS选择器来定位类名为el-button--primary的元素,该元素出现即认为加载完成
    element = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.el-button--primary')))
    
    # 等待页面加载完成：第二种方式，指定等时间
    # time.sleep(5)

    # 获取页面源代码
    page_text = driver.page_source
    
    # 将页面内容保存到本地文件
    with open('d:/项目/python/爬虫/网页/测试.html', 'w', encoding='utf-8') as fp:
        fp.write(page_text)
finally:
    # 关闭浏览器
    driver.quit()